package bzqn.com.rongcloudsdk.utils;

import android.net.Uri;

import bzqn.com.rongcloudsdk.GetToken;
import bzqn.com.rongcloudsdk.HttpResponseCallback;
import bzqn.com.rongcloudsdk.ServerApi;
import io.rong.imkit.RongIM;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.UserInfo;

/**
 * Created by a on 2017/5/15.
 */

public class RongIMUtils {
    /**
     *
     * @param uid 用户id
     */
    public static void connectChat(final String uid){
        GetToken.getRYTokenAndConnect(new RongIMClient.ConnectCallback() {

            /**
             * Token 错误。可以从下面两点检查 1.  Token 是否过期，如果过期您需要向 App Server 重新请求一个新的 Token
             *                  2.  token 对应的 appKey 和工程里设置的 appKey 是否一致
             */
            @Override
            public void onTokenIncorrect() {

            }

            /**
             * 连接融云成功
             * @param userid 当前 token 对应的用户 id
             */
            @Override
            public void onSuccess(String userid) {
                DialogUtils.showToast("融云服务器连接成功");
                getUserinfo(uid);
            }

            /**
             * 连接融云失败
             * @param errorCode 错误码，可到官网 查看错误码对应的注释
             */
            @Override
            public void onError(RongIMClient.ErrorCode errorCode) {
                DialogUtils.showToast("聊天室连接失败!"+":"+errorCode);
            }
        },uid);
    }
    private static void getUserinfo(final String uid){
        ServerApi.getUserinfo(new HttpResponseCallback<UserInfoMod>() {
            @Override
            public void onSuccess(final UserInfoMod mod) {
                RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
                    @Override
                    public UserInfo getUserInfo(String s) {
                        UserInfoMod.UserInfoBean user = mod.getList().get(0);
                        return new UserInfo(uid,user.getUser_login(), Uri.parse(user.getAvatar()));
                    }
                },true);
            }

            @Override
            public void onFaile(String message) {

            }

            @Override
            public void onStart() {

            }
        },uid);
    }
}
